#ifndef MUDNMUCKACTOR
#define MUDNMUCKACTOR

#include <queue>
#include "gameobject.h"
#include "cell.h"

/**
*    The Actor class is a class meant as a common point for Player and AiPlayer to derive from
*    It implements the functions common to both.
*/

class Actor : public GameObject{

     protected:
          std::string Name;
          Cell* CurrentCell, NextCell;
          std::queue<Cell*> MoveQ;
          //std::map<int,item*> Inventory;
          bool canmove,inCombat;
          int HP;
          GameObject* Target;

     public:
		 Actor();
          ///Sets the name
          inline void setName(std::string newname);

          ///Gets the name
          inline std::string getName(); 

          ///Say a message in general chat for the room.
          void Say(std::string msg);

          ///Gets the current cell we are on.
          inline Cell* getCell();

          ///Stop moving          
		  void StopMovement();

          ///Handles actual movement
          void Move(Cell* toCell);

		  ///Process Movements that are in the MoveQ
          void ProcessMovement();

          ///Handle our Tick event
          void ProcessTick();

};
#endif